package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;

import models.Produto;
import models.Usuario;

public class ListaPresenteDAO {
private static FachadaDAO singleton = null;
	
	private java.sql.Connection conexao;
	private ConexaoBanco conexaoBanco;
	
	public static FachadaDAO getInstance() {
        if (singleton == null) {
        // "lazy instantiation"
        singleton = new FachadaDAO();
        }
        return singleton;
    }
	
	private Connection openConexaoBanco(){
		this.conexaoBanco = new ConexaoBanco();		
		this.conexao = this.conexaoBanco.openConexao();
		
		return this.conexao;
	}
	
	public void addListaPresente(Usuario usuario, List<Produto> listaProdutos){
		for(Produto produto : listaProdutos){
			this.addPresente(usuario, produto);
		}
	}
	
	private void addPresente(Usuario usuario, Produto produto){
		String comando = "insert into lista_presentes (usuario_id, produto_id, quantidade)"
			+ "values(?,?, 1)";
		
		try {
			PreparedStatement p = this.conexao.prepareStatement(comando);
			p.setInt(1, usuario.getId());
			p.setInt(2, produto.getId());
			
			p.execute();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			return;
		}
	}

}
